Today's enterprise systems are beginning to utilize cloud computing resources more frequently. Cloud computing resources offer computation, software, data access, and storage services that do not require end-user knowledge of the physical location and configuration of the system that delivers the services. Parallels to this concept can be drawn with the electricity grid where end-users consume power resources without any understanding of the component devices in the grid required to provide the service. Cloud computing is a natural evolution of the widespread adoption of virtualization, service-oriented architecture, autonomic and utility computing. Details are abstracted from end-users, who no longer have need for expertise in, or control over, the technology infrastructure “in the cloud” that supports them.
Cloud computing describes a new supplement, consumption, and delivery model for Information Technology (IT) services based on Internet protocols, and typically involves provisioning of dynamically scalable and often virtualized resources. Cloud computing is a byproduct and consequence of the ease-of-access to remote computing sites provided by the Internet. The ease-of-access frequently takes the form of web-based tools or applications that users can access and use through a web browser as if the remote service were a program installed locally on their own computer.
The National Institute of Standards and Technology (NIST) provides a somewhat more objective and specific definition:                “Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.”        
The term “cloud” can be thought of as a metaphor for the Internet, based on the cloud drawing used in the past to represent the telephone network, and later to depict the Internet in computer network diagrams as an abstraction of the underlying infrastructure it represents. Typical cloud computing providers deliver common business applications online that are accessed from another Web service or software like a Web browser, while the software and data are stored on servers.
Most cloud computing infrastructures consist of services delivered through common centers and built on servers. Clouds often appear as single points of access for consumers' computing needs. Commercial offerings are generally expected to meet quality of service (QoS) requirements of customers, and typically include service level agreements (SLAs).
In a corporate environment there can be available both internal cloud resources and external cloud resources or perhaps even a mixture of these (hybrid cloud). Internal clouds comprise a computing-like environment of resources within the boundaries of an organization and typically available for exclusive use by the organization. External clouds comprise a computing-like environment of resources external to the boundaries of the organization. Although it often is, an external cloud is not necessarily a public cloud. Some external clouds make their cloud infrastructure available to specific other organization (typically at a cost) and not to the public at-large.
When a cloud nears or reaches its capacity there may be a “cloud burst.” A cloud burst has both a positive and negative meaning. In the positive sense, cloud burst refers to the dynamic deployment of a software application that runs on internal organizational compute resources to a public or external cloud to address a spike in demand that cannot be satisfied by the original cloud alone. In the negative sense, a cloud burst refers to the failure of a cloud computing environment due to the inability to handle a spike in demand and thus the request for resources is not satisfied.
In a cloud computing environment, customers of the cloud believe they have instantaneous access to unlimited resources. To satisfy this with finite resources there are times when resources could have to be acquired from an external or another internal cloud. Different clouds might have different security capabilities, performance capabilities, and associated cost.
Existing cloud burst systems simply act as routers for requests, deciding which ones are provisioned locally, and which ones are provisioned on the external cloud. Today's cloud burst strategies do not attempt to reduce cost by using mechanisms like service broking, reservations etc. Also, today's cloud burst strategies do not provide a cost-benefit analysis of bursting or provide data about the benefits of this approach versus not bursting or increasing resource redundancy in the internal cloud.
To solve these and other issues, a method and system are provided to predict and reduce cost incurred while scaling to another cloud to meet short term demand and to take into account security and performance requirements of customers. In one embodiment, the proposed method and system provide automation and prediction capabilities to help with the decision of growing cloud resources or temporarily becoming a hybrid cloud. By “pre-bursting” the cloud in anticipation of a cloud burst the growth in resources can be predicted and performed (with security in mind) prior to actual cloud consumer requests.